home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / php / pear / HTML / QuickForm / xbutton.php < prev   
PHP Script  |  2004-10-01  |  4KB  |  146 lines

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4: */
  3. // +----------------------------------------------------------------------+
  4. // | PHP Version 4                                                        |
  5. // +----------------------------------------------------------------------+
  6. // | Copyright (c) 1997-2003 The PHP Group                                |
  7. // +----------------------------------------------------------------------+
  8. // | This source file is subject to version 2.0 of the PHP license,       |
  9. // | that is bundled with this package in the file LICENSE, and is        |
  10. // | available at through the world-wide-web at                           |
  11. // | http://www.php.net/license/2_02.txt.                                 |
  12. // | If you did not receive a copy of the PHP license and are unable to   |
  13. // | obtain it through the world-wide-web, please send a note to          |
  14. // | license@php.net so we can mail you a copy immediately.               |
  15. // +----------------------------------------------------------------------+
  16. // | Authors: Alexey Borzov <avb@php.net>                                 |
  17. // +----------------------------------------------------------------------+
  18. //
  19. // $Id: xbutton.php,v 1.1 2004/05/18 09:46:46 avb Exp $
  20.  
  21. require_once 'HTML/QuickForm/element.php';
  22.  
  23. /**
  24.  * Class for HTML 4.0 <button> element
  25.  * 
  26.  * @author  Alexey Borzov <avb@php.net>
  27.  * @since   3.2.3
  28.  * @access  public
  29.  */
  30. class HTML_QuickForm_xbutton extends HTML_QuickForm_element
  31. {
  32.    /**
  33.     * Contents of the <button> tag
  34.     * @var      string
  35.     * @access   private
  36.     */
  37.     var $_content; 
  38.  
  39.    /**
  40.     * Class constructor
  41.     * 
  42.     * @param    string  Button name
  43.     * @param    string  Button content (HTML to add between <button></button> tags)
  44.     * @param    mixed   Either a typical HTML attribute string or an associative array
  45.     * @access   public
  46.     */
  47.     function HTML_QuickForm_xbutton($elementName = null, $elementContent = null, $attributes = null)
  48.     {
  49.         $this->HTML_QuickForm_element($elementName, null, $attributes);
  50.         $this->setContent($elementContent);
  51.         $this->setPersistantFreeze(false);
  52.         $this->_type = 'xbutton';
  53.     }
  54.  
  55.  
  56.     function toHtml()
  57.     {
  58.         return '<button' . $this->getAttributes(true) . '>' . $this->_content . '</button>';
  59.     }
  60.  
  61.  
  62.     function getFrozenHtml()
  63.     {
  64.         return $this->toHtml();
  65.     }
  66.  
  67.  
  68.     function freeze()
  69.     {
  70.         return false;
  71.     }
  72.  
  73.  
  74.     function setName($name)
  75.     {
  76.         $this->updateAttributes(array(
  77.             'name' => $name 
  78.         ));
  79.     }
  80.  
  81.  
  82.     function getName()
  83.     {
  84.         return $this->getAttribute('name');
  85.     }
  86.  
  87.  
  88.     function setValue($value)
  89.     {
  90.         $this->updateAttributes(array(
  91.             'value' => $value
  92.         ));
  93.     }
  94.  
  95.  
  96.     function getValue()
  97.     {
  98.         return $this->getAttribute('value');
  99.     }
  100.  
  101.  
  102.    /**
  103.     * Sets the contents of the button element
  104.     *
  105.     * @param    string  Button content (HTML to add between <button></button> tags)
  106.     */
  107.     function setContent($content)
  108.     {
  109.         $this->_content = $content;
  110.     }
  111.  
  112.  
  113.     function onQuickFormEvent($event, $arg, &$caller)
  114.     {
  115.         if ('updateValue' != $event) {
  116.             return parent::onQuickFormEvent($event, $arg, $caller);
  117.         } else {
  118.             $value = $this->_findValue($caller->_constantValues);
  119.             if (null === $value) {
  120.                 $value = $this->_findValue($caller->_defaultValues);
  121.             }
  122.             if (null !== $value) {
  123.                 $this->setValue($value);
  124.             }
  125.         }
  126.         return true;
  127.     }
  128.  
  129.  
  130.    /**
  131.     * Returns a 'safe' element's value
  132.     * 
  133.     * The value is only returned if the button's type is "submit" and if this
  134.     * particlular button was clicked
  135.     */
  136.     function exportValue(&$submitValues, $assoc = false)
  137.     {
  138.         if ('submit' == $this->getAttribute('type')) {
  139.             return $this->_prepareValue($this->_findValue($submitValues), $assoc);
  140.         } else {
  141.             return null;
  142.         }
  143.     }
  144. }
  145. ?>
  146.